package com.atguigu.yygh.common.sms;

import com.alibaba.fastjson.JSONException;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import lombok.extern.slf4j.Slf4j;

import javax.xml.ws.http.HTTPException;
import java.io.IOException;

/**
 * 短信发送工具类
 */
@Slf4j
public class SMSUtils {
	/**
	 * 腾讯云短信服务
	 * @param phone
	 * @param code
	 * @return
	 */
	public static Boolean sendMessage(String phone, String code){

		int appId = 1400695054; //appId
		String appKey = "0d003a7fce3980ff3f4d5671a996b311"; //appKey
		String phoneNumber = phone;
		int templateId = 1447707; // 短信正文模板
		String smsSign = "随缘学习吧";  //签名内容
		//可能获取失败，所以放在try-chach中
		try {
			String[] params = {code};//传入验证码和时间数组，根据短信模板自行调整
			log.info("入参电话："+phoneNumber);
			log.info("入参验证码："+code);
			//创建短信调用接口 传入刚刚的应用id 和 key
			SmsSingleSender sender = new SmsSingleSender(appId, appKey);
			//调用方法发送短信  传入国家码 电话号码 模板id 模板参数 签名 扩展码为空 返回参数为空
			SmsSingleSenderResult result = sender.sendWithParam("86", phoneNumber, templateId,params,smsSign,"","");
			log.info("短信发送成功!");
		} catch(HTTPException e) {
			// HTTP响应码错误
			log.info("HTTP响应码错误!");
			e.printStackTrace();
			return false;
		} catch(JSONException e) {
			// json解析错误
			log.info("json解析错误!");
			e.printStackTrace();
			return false;
		} catch(IOException e) {
			// 网络IO错误
			log.info("网络IO错误!");
			e.printStackTrace();
			return false;
		} catch (com.github.qcloudsms.httpclient.HTTPException e) {
			e.printStackTrace();
		}
		return true;
	}

//	public boolean send(MsmVo msmVo) {
//		if(!StringUtils.isEmpty(msmVo.getPhone())) {
//			boolean isSend = this.sendMQMessage(msmVo.getPhone(),msmVo.getParam());
//			return isSend;
//		}
//		return false;
//	}
//	public static Boolean sendMQMessage(String phone, Map<String,Object> param){
//
//		int appId = 1400695054; //appId
//		String appKey = "0d003a7fce3980ff3f4d5671a996b311"; //appKey
//		String[] params = {"1234"};
//		String phoneNumber = phone;
//		int templateId = 1447707; // 短信正文模板
//		String smsSign = "随缘学习吧";  //签名内容
//		//可能获取失败，所以放在try-chach中
//		try {
//			//创建短信调用接口 传入刚刚的应用id 和 key
//			SmsSingleSender sender = new SmsSingleSender(appId, appKey);
//			//调用方法发送短信  传入国家码 电话号码 模板id 模板参数 签名 扩展码为空 返回参数为空
//			SmsSingleSenderResult result = sender.sendWithParam("86", phoneNumber, templateId,params ,smsSign,"","");
//			log.info("短信发送成功!");
//		} catch(HTTPException e) {
//			// HTTP响应码错误
//			log.info("HTTP响应码错误!");
//			e.printStackTrace();
//			return false;
//		} catch(JSONException e) {
//			// json解析错误
//			log.info("json解析错误!");
//			e.printStackTrace();
//			return false;
//		} catch(IOException e) {
//			// 网络IO错误
//			log.info("网络IO错误!");
//			e.printStackTrace();
//			return false;
//		} catch (com.github.qcloudsms.httpclient.HTTPException e) {
//			e.printStackTrace();
//		}
//		return true;
//	}

}

